package com.nineclock.sign.service;

import com.nineclock.common.entity.PageResult;
import com.nineclock.sign.dto.SignDto;
import com.nineclock.sign.dto.SignInfoDTO;
import com.nineclock.sign.dto.StatisticsTeamSignInDto;

import java.io.IOException;
import java.util.List;

public interface SignInfoService {
    /**
     * 接口名称：APP: 签到
     * 接口路径：POST/sign/insert
     */
    void sign(SignInfoDTO signInfoDTO);
    /**
     * 查询签到列表
     * @param startTime 开始时间
     * @param endTime   结束时间
     * @param page      总页数
     * @param pageSize  当前页大小
     * @return
     */
    public PageResult<List<SignDto>> querySigns(String startTime, String endTime, Integer page, Integer pageSize);


    /**
     * APP: 获取团队员工打卡列表
     * @param dateStr
     * @return
     */
    List<StatisticsTeamSignInDto> listSignAllUser(String dateStr);

    /*接口名称：APP: 获取当前用户当天签到次数
     *  接口路径：GET/sign/getDayCount
     */
    int queryDaySign();


    //查询当月签到记录
    List<SignInfoDTO>  queryMonthSign(String dateStr);
    //导出打卡数据
    void exportSignData(String startTime, String endTime) throws IOException, IOException;
}
